<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<style>
#empty:not(:empty) + div { background-color: green; }
</style>
<div id="empty"></div>
<div id="sibling">This text should be green</div>
<script>
description("Check that the sibling of an element that becomes :not(:empty) is properly recalculated");

var transparent = "rgba(0, 0, 0, 0)";
var green = "rgb(0, 128, 0)";

empty.offsetTop; // force recalc
empty.style.color = "red"; // force LocalStyleChange on #empty
empty.offsetTop; // force recalc

shouldBe("getComputedStyle(sibling, '').backgroundColor", "transparent");

empty.appendChild(document.createElement("div"));
empty.offsetTop; // force recalc

shouldBe("getComputedStyle(sibling, '').backgroundColor", "green");
</script>
